package com.onpositive.realmview.model;

import java.util.Collection;

import com.onpositive.realmview.IRealmView;
import com.onpositive.realmview.model.filtering.IBooleanFilter;
import com.onpositive.realmview.model.filtering.IUIFilter;
import com.onpositive.semantic.model.api.property.IPropertyProvider;

public interface IViewConfigurationDescriber {

	Collection<IViewGrouping> getGroupings();

	Collection<IBooleanFilter>getQuickFilters();
	
	Collection<IUIFilter> getPossibleFilters();
	
	Collection<ILabel>getKnownLabels();
	
	Collection<ILabel>getKnownSummaryLabels();
	
	Collection<ColumnConfiguration>getAllowedColumns();

	IBooleanFilter getQuickFilter(String id);

	ColumnConfiguration getColumn(String id);

	IViewGrouping getGrouping(String grouping);

	Collection<IRealmView> getDefaultViews();

	IUIFilter getFilter(String id);

	ILabel getLabel(String id);

	ILabel getSummary(String id);	
		
	IPropertyProvider provider();
}
